License management is used for controlling the use of software applications. A software application is designed with a built-in function that allows it to operate only when an appropriate license is available.
In comparison with the on-off feature-based license management, the usage-based license management is becoming more and more popular. One type of the usage-based license management is capacity-based controlling system in which the number of transactions per a period is restricted.
A basic license controlling system based on the capacity typically includes one or more traffic nodes that handle the incoming traffic and provide telecom services for terminals in the telecom network, and license server that controls all traffic nodes to use the traffic legally, wherein each traffic node may provide at least one type of service, such as only Short Message Service (SMS), or SMS and email service. A large-scale license controlling system which comprises more license servers and traffic nodes is established for big customer, as shown in FIG. 1, therein wherein the network is divided into sub-networks either logically according to the traffic type or geographically according to the governing area, and the license servers are connected with each other. Typically, one license server in each sub-network serves the license requests from its own sub-network. However, other servers can take over that requests when the server failed in dealing with it.
Since the validation of service usage is performed against the number of allowed license tokens on each traffic node, wherein the license tokens are obtained from license server, it is actually impracticable to obtain the license tokens from the license server each time when there is a new incoming request to traffic node from terminal via the telecom network.
A widely used solution is shown in FIG. 2. In this solution, a number of license tokens are even distributed to each traffic node for example during the initializing. Refer to FIG. 2, numbers of license tokens 200, which are used to control the traffic capacity 210 of incoming requests for services provided by traffic nodes 20, are preserved at each of traffic nodes 20. Once the traffic capacity 210 of the incoming requests exceeds the preserved license tokens 200 at any traffic node, for example, the traffic node 203, the traffic node sends a request for renewing license tokens to a license server 22. In case of failing to renew license tokens, the exceeded service requests is blocked or queued up, while most of the preserved license tokens 200 at the traffic node 201 are left unused for less traffic capacity of incoming request. Borrowing unused license tokens from other traffic nodes are allowed in some case, but it is impracticable for the complex operation.
A post-validation mechanism, allowing the traffic of incoming requests to be passed before license validation and deducting the license tokens corresponding to the actual usage from the license server after a certain timeframe, is used in another solution. Comparing with so called pre-validation mechanism (every traffic of incoming request will be validated against the license tokens before further process of the traffic request) used in above mentioned solution, such post-validation mechanism avoids the problem that caused by even distribution of license tokens at the beginning in an unpredicted unbalanced traffic environment, as well the complexity of token borrowing between the traffic nodes.
However, after the initial distribution of the license tokens in pre-validation mechanism or deducting the license tokens in post-validation, both pre-validation and post-validation mechanism utilizes the “first come first served” approach (i.e. the requests from the traffic nodes are served in the order of their reaching the license sever) to make the traffic nodes obtain license tokens from the license server. Under this approach, once license tokens at the license server are used up, any request for tokens, no matter from which traffic node it come's, will be refused or queued up without considering priority, importance or demand of the request until the occupied license tokens are released and made available again. This manner may be suitable in a single-type service environment where only one type of service is provided by traffic nodes or each of traffic nodes plays equal important role in the network. But it is unacceptable in a mixed-service environment, where more than two types of service are provided by one or more traffic nodes or the traffic nodes obtain the license tokens from the same license server in a manner of “first come first use” even if they hold different priorities or weights, in a license controlling system.
The prior art way of distributing the license tokens in the “first come first served” approach may cause that the license controlling system, due to missing license in some nodes, can not handle the more prioritized requests while it at the same time handles less prioritized requests.